Online Transaction Processing (OLTP) database systems are among the most widely deployed data processing systems in use by enterprises today. With the explosive growth of OLTP database systems and their user populations, scalability issues have become the major obstacle to the systems for achieving high transaction throughput. One common approach to scaling these OLTP database systems is to partition the database and workload across a cluster of commodity, non-sharing servers (nodes) that are managed by a parallel or distributed database management system (DBMS), e.g., Greenplum® Database available from EMC Corporation of Hopkinton, Mass.
In practice, the scalability of these OLTP applications adopting the partitioning technique usually depends on an optimal database partitioning scheme, which defines how an application's data and workload is partitioned across nodes in the cluster, and how queries and transactions are routed to nodes. Without a proper design, a DBMS will perform no better than a single-node system due to the overhead caused by blocking, inter-node communication, and load balancing issues, that result from the distributed transactions and data and workload skew. However, designing an optimal database partitioning scheme for OLTP applications is known to be difficult.